package main
import(
	"fmt"
	"unsafe"  //查看变量占用字节数函数的包
)
func main(){
	//定义一个整数类型 
	//有符号整数类型
	/* 
	int8的范围是-127~128          			 (1个字节)
	int16的范围是-32768~32767				（2个字节）
	int32的范围是-2147483648~2147483647		（4个字节）
	int64的范围是-2^63~2^63-1 				（8个字节）
	*/
	var num1 int8 = 23
	fmt.Println(num1)  //输出23
	/* var num1 int8 =2 30
	fmt.Println(num1)  //超出范围 出错 */

	//无符号整数类型
	/* 
	uint8的范围是0~255			（1个字节）
	uint16的范围是0~2^16-1		（2个字节）
	uint32的范围是0~2^31-1		（4个字节）
	uint64的范围是0~2^63-1 		（8个字节）
	*/
	
	/* var num2 uint8 = -20
	fmt.Println(num2)   //超出范围出错  */

	//注意：Printf函数的作用就是格式化，把num3的类型填充到%T上
	//%TG0语言表示的值的类型
	var num3 = 28
	fmt.Printf("num的类型是:%T",num3)//num3的类型是：int

	fmt.Println() //换行

	//变量占用字节数用unsafe，需要导包
	fmt.Println(unsafe.Sizeof(num3)) //8
}